Repeater控件并不是从WebControl类派生而来,所以不支持一些通用的格式。比如字体颜色等等。
格式:<asp:Repeater ID="MyRepeater" runat="server"></asp:Repeater>
注意:Repeater控件只支持模板,AlternatingItemTemplate、ItemTemplate、HeaderTemplate、FooterTemplate、SeparatorTemplate。其中ItemTemplate模板是强制性模板,必须拥有的。
数据源绑定方式两种:
第一:通过设置其DataSource属性来绑定数据源。缺点:初学者,背于Code-Behind.
第二:通过设置DataMember属性来动态绑定Repeater控件。
如何利用Repeater显示数据文件?代码如下:
<form id="form1" method="post" runat="Server">
<asp:Repeater id="MyRepeater" runat="Server">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem,"title")%>
</ItemTemplate>
</from>
说明要点:<%#DataBinder.Eval(Container.DataItem,"数据库字段名称")%>
其中DataBinder是System.Web.UI命名空间中的一个类,Eval是一个静态方法,使用反射来计算数据绑定表达式。Repeater控件最常用的事件有3个分别是:ItemCommand、ItemCreated、ItemDataBound,当创建一个项或者一个项被绑定到数据源的时候,将分别触发ItemCreated和ItemDataBound事件,当Repeater控件中有按钮事件被触发时(通常是单击),将触发ItemCommand事件,用户可以用过RepeaterCommandEventArgs参数获取以下三个参数的值CommandArgument、CommandName和CommandSource.以此确定Repeater控件中按钮控件的名称和值。写了这么多,还是举一个例子吧。请看下面的代码:
<form id="form1" runat="server">
<div>
<asp:Repeater ID="MyRepeater" runat="server" DataSourceID="SqlDataSource1" OnItemCommand="MyRepeater_ItemCommand">
<HeaderTemplate>
<table border="1">
<tr>
<td>作者</td>
<td>地址</td>
<td>联系</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("au_lname") %></td>
<td><%#Eval("Address") %></td>
<td><asp:Button ID="btBuy" Text="联系" CommandArgument='<%#Eval("au_lname") %>' runat="server" /></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<asp:Label ID="ibBuy" runat="server"></asp:Label>
</div>
</form>
下面对Repeater控件的ItemCommand事件进行编程,并且在Load事件中进行数据绑定。代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Repeater : System.Web.UI.Page{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection myCon = new SqlConnection("Server=WuWei;DataBase=YourDataBase;User id=sa;pwd=123456");
try
{
myCon.Open();
SqlCommand myCmd = new SqlCommand("Select * from Orders", myCon);
SqlDataReader reader = myCmd.ExecuteReader();
this.MyRepeater.DataSource = reader;
this.MyRepeater.DataBind();
}
finally
{
myCon.Close();
}
}
}
protected void MyRepeater_ItemCommand(object source, RepeaterCommandEventArgs e)
{
this.ibBuy.Text = e.CommandArgument.ToString();
}
}
总结:注意数据绑定方法,其次养成好的习惯把容易出错误的代码放在try......finally里面.
标签:
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:CSDN